static_library("IPO") {
  output_name = "LLVMipo"
  deps = [
    "//llvm/lib/Analysis",
    "//llvm/lib/Bitcode/Reader",
    "//llvm/lib/Bitcode/Writer",
    "//llvm/lib/Frontend/OpenMP",
    "//llvm/lib/IR",
    "//llvm/lib/IRReader",
    "//llvm/lib/Linker",
    "//llvm/lib/Object",
    "//llvm/lib/ProfileData",
    "//llvm/lib/Support",
    "//llvm/lib/Transforms/AggressiveInstCombine",
    "//llvm/lib/Transforms/InstCombine",
    "//llvm/lib/Transforms/Instrumentation",
    "//llvm/lib/Transforms/Scalar",
    "//llvm/lib/Transforms/Utils",
    "//llvm/lib/Transforms/Vectorize",
  ]
  sources = [
    "AlwaysInliner.cpp",
    "Annotation2Metadata.cpp",
    "ArgumentPromotion.cpp",
    "Attributor.cpp",
    "AttributorAttributes.cpp",
    "BarrierNoopPass.cpp",
    "BlockExtractor.cpp",
    "CalledValuePropagation.cpp",
    "ConstantMerge.cpp",
    "CrossDSOCFI.cpp",
    "DeadArgumentElimination.cpp",
    "ElimAvailExtern.cpp",
    "ExtractGV.cpp",
    "ForceFunctionAttrs.cpp",
    "FunctionAttrs.cpp",
    "FunctionImport.cpp",
    "FunctionSpecialization.cpp",
    "GlobalDCE.cpp",
    "GlobalOpt.cpp",
    "GlobalSplit.cpp",
    "HotColdSplitting.cpp",
    "IPO.cpp",
    "IROutliner.cpp",
    "InferFunctionAttrs.cpp",
    "InlineSimple.cpp",
    "Inliner.cpp",
    "Internalize.cpp",
    "LoopExtractor.cpp",
    "LowerTypeTests.cpp",
    "MergeFunctions.cpp",
    "OpenMPOpt.cpp",
    "PartialInlining.cpp",
    "PassManagerBuilder.cpp",
    "PruneEH.cpp",
    "SCCP.cpp",
    "SampleContextTracker.cpp",
    "SampleProfile.cpp",
    "SampleProfileProbe.cpp",
    "StripDeadPrototypes.cpp",
    "StripSymbols.cpp",
    "SyntheticCountsPropagation.cpp",
    "ThinLTOBitcodeWriter.cpp",
    "WholeProgramDevirt.cpp",
  ]
}
